﻿<!DOCTYPE html>
<meta charset="utf-8">
<style>
    body {
        font: 14px sans-serif;
    }

    .axis path,
    .axis line {
        fill: none;
        stroke: #000;
        shape-rendering: crispEdges;
    }

    .bar {
        fill: #0489B1;
    }

    .x.axis path {
        display: none;
    }
</style>
<body>
    <script src="../d3.min.js"></script>
    <script>

        var margin = { top: 20, right: 30, bottom: 30, left: 50 },
            width = 1200 - margin.left - margin.right,
            height = 500 - margin.top - margin.bottom;

        var formato = d3.format("0.0");

        var x = d3.scale.ordinal()
            .rangeRoundBands([0, width], .1);

        var y = d3.scale.linear()
            .range([height, 0]);

        var xAxis = d3.svg.axis()
            .scale(x)
            .orient("bottom");

        var yAxis = d3.svg.axis()
            .scale(y)
            .orient("left")
            .tickFormat(formato);

        var svg = d3.select("body").append("svg")
            .attr("width", width + margin.left + margin.right)
            .attr("height", height + margin.top + margin.bottom)
          .append("g")
            .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

        d3.csv("pokemonByType.csv", function (error, data) {

            data.forEach(function (d) {
                d.amount = +d.amount;
            });

            x.domain(data.map(function (d) { return d.type; }));
            y.domain([0, d3.max(data, function (d) { return d.amount; })]);

            svg.append("g")
                .attr("class", "x axis")
                .attr("transform", "translate(0," + height + ")")
                .call(xAxis);

            svg.append("g")
                .attr("class", "y axis")
                .call(yAxis)
              .append("text")
                .attr("transform", "rotate(-90)")
                .attr("y", 6)
                .attr("dy", ".71em")
                .style("text-anchor", "end")
                .text("Amount");

            svg.selectAll(".bar")
                .data(data)
                .enter().append("rect")
                .attr("class", "bar")
                .attr("x", function (d) { return x(d.type); })
                .attr("width", x.rangeBand())
                .attr("y", function (d) { return y(d.amount); })
                .attr("height", function (d) { return height - y(d.amount); });

        });

    </script>
